Conventional computer systems operate software applications and processes that store and organize data within various data formats. One example of a software application that is responsible for storing data is a file system that is commonly part of an operating system of a computer. A file system operates to perform tasks such as creating and formatting disk areas for storage of computer files, storing data in files, retrieving data in files, organizing files in memory, and the like. A file system generally handles file system calls made by user applications to the operating system to read or write data to storage such as a disk storage system. The file system initially formats the storage medium, such as one or more disk drives, and thereafter can process the file system calls to create new files, and add and remove (read, write and delete) data to and from the individual files maintained on the storage medium by the file system.
The size of files in conventional file systems has continued to grow in capacity as new applications and uses are developed. Examples of such large individual files include multimedia files containing digitized audio and video images, electronic mail folders, voice mail files, and large business database documents. Applications such as backup and restore programs exist to prevent the permanent loss of files maintained by file systems. Traditional file system backup and restore solutions support a backup model that includes creating an initial full backup copy of a file system and its files, followed by periodically (e.g. nightly) creating a subsequent full copy of all files in the file system that have been modified since the previous full or incremental backup. In this manner, a conventional backup process is certain to have a full backup copy of each file as of the date that file was last modified. Conventional backup programs identify files for incremental backup operations through the use and examination of individual file date and time attributes stored at the beginning of each file within the file system. As a result, if a file is modified during the course of use, the file system updates file attributes (e.g. a time stamp) associated with that file to indicate the file has been changed. As a result, upon execution of the backup process sometime thereafter, the backup process can inspect the file attributes stored within the file on disk and can determine that the contents of this file are to be included in the incremental backup if the file has been modified since the last backup procedure was performed.